#ifndef MBOOT_H
#define MBOOT_H

#define MBOOT_MEM_SIZE_INFO			1 << 0
#define MBOOT_BOOT_DEVICE_INFO		1 << 1
#define MBOOT_CMD_PRESENT			1 << 2
#define MBOOT_MODS_INFO				1 << 3
#define MBOOT_SYMS_AOUT_INFO		1 << 4
#define MBOOT_SYMS_ELF_INFO			1 << 5
#define MBOOT_MMAP_INFO				1 << 6
#define MBOOT_DRIVERS_INFO			1 << 7
#define MBOOT_CONFIG_TABLE_INFO		1 << 8
#define MBOOT_BOOT_LOADER_INFO		1 << 9
#define MBOOT_APM_TABLE				1 << 10
#define MBOOT_VBE_INFO				1 << 11


struct  mboot_info_s {
    uint32      flags;
    uint32      mem_lower;
    uint32      mem_upper;
    uint32      boot_device;
    uint32      cmd_line;
    uint32      mods_count;
    uint32		mods_addr;
    uint32		syms,a,s,d;
    uint32      mmap_length;
    uint32      mmap_addr;
    uint32      drivers_length;
    uint32      drivers_addr;
    uint32      config_table;
    uint32      boot_loader_name;
    uint32      apm_table;
    uint32      vbe_control_info;
    uint32      vbe_mode_info;
    uint16      vbe_mode;
    uint16      vbe_interface_seg;
    uint16      vbe_interface_off;
    uint16      vbe_interface_len;
} *mboot_info;

struct mboot_mmap_info_s {
	uint32		size;
	uint64		base_addr;
	uint64		length;
	uint32		type;
}*mboot_mmap_info;



#endif  /* MBOOT_H */
